home *** CD-ROM | disk | FTP | other *** search
/ Micromanía 93 / CDMM_93_2.ISO / Project Nomads / nomads_demo_eng.exe / AIRPLANE_ATTACK.TCL < prev    next >
Encoding:
Text File  |  2002-01-23  |  7.2 KB  |  240 lines

  1. new nroot airplane/attack
  2. sel airplane/attack
  3.  
  4.  
  5. # ------------------------------------------------------------
  6. # Folgen, sofern das Ziel vor mit ist. Ist eigentlich Default-
  7. # verhalten und somit die "Standard-0.5"
  8. # ------------------------------------------------------------
  9. new ncommandlist follow
  10. follow.setadjusttype    reach
  11. follow.settestcommand   aafollow_test
  12. follow.addcommand true 0 0 -10 false 0 0 0 nothing 5.0
  13.  
  14. proc aafollow_test {} { 
  15.  
  16. global zufallszahl
  17.  
  18.     return 0.5
  19. }
  20.  
  21. # -----------------------------------------------------------------
  22. # Wenn das Ziel hinter mir ist, gibt es zwei Moeglichketen:
  23. # 1. Es ist weit weg, so dass ich es anfliegen muss und 2. Es
  24. # ist nah dran und kann mich treffen, so dass ich mir was einfallen
  25. # lassen muss. Weil aber 1. schon der Defaultfall ist, mache ich
  26. # nur einen Test auf den 2. Fall
  27. # -----------------------------------------------------------------
  28.  
  29. # ein Looping ist die erste Moeglichkeit, benoetig einen leichten Anlauf
  30. new ncommandlist looping
  31. looping.setadjusttype   horimaneuver
  32. looping.settestcommand  aalooping_test
  33. looping.addcommand  true  0  0 -125 true   0 0 0 nothing 1.5
  34. looping.addcommand  true  0  0 -150 true   0 0 0 nothing 3.5
  35. looping.addcommand  false 0  0    0 true   0 0 0 nothing 5.5
  36. looping.addcommand  false 0  0    0 true   0 0 0 nothing 7.0
  37. looping.addcommand  false 0  0    0 true  22 0 0 nothing 8.0
  38. looping.addcommand  false 0  0    0 true  45 0 0 nothing 9.0
  39. looping.addcommand  false 0  0    0 true  67 0 0 nothing 10.0
  40. looping.addcommand  false 0  0    0 true  90 0 0 nothing 11.0
  41. looping.addcommand  false 0  0    0 true 112 0 0 nothing 12.0
  42. looping.addcommand  false 0  0    0 true 135 0 0 nothing 13.0
  43. looping.addcommand  false 0  0    0 true 157 0 0 nothing 14.0
  44. looping.addcommand  false 0  0    0 true 180 0 0 nothing 15.0
  45. looping.addcommand  false 0  0    0 true 202 0 0 nothing 16.0
  46. looping.addcommand  false 0  0    0 true 225 0 0 nothing 17.0
  47. looping.addcommand  false 0  0    0 true 247 0 0 nothing 18.0
  48. looping.addcommand  false 0  0    0 true 270 0 0 nothing 19.0
  49. looping.addcommand  false 0  0    0 true 292 0 0 nothing 20.0
  50. looping.addcommand  false 0  0    0 true 315 0 0 nothing 21.0
  51. looping.addcommand  false 0  0    0 true 337 0 0 nothing 22.0
  52. looping.addcommand  false 0  0    0 true 360 0 0 nothing 23.0
  53. looping.addcommand  false 0  0    0 true   0 0 0 nothing 24.0
  54.  
  55. proc aalooping_test {} { 
  56.  
  57. global zufallszahl
  58. global targetangle
  59. global targetdist
  60.  
  61.     set zufallszahl [expr rand()]
  62.     set targetangle [.gettargetangle]
  63.     set targetdist  [.gettargetdist]
  64.     
  65.     if { (90 < $targetangle) && (200 < $targetdist) } {
  66.     
  67.         if { (0.0 <= $zufallszahl) && (0.3 > $zufallszahl) } {
  68.             return 1.0
  69.         } else {
  70.             return 0.0
  71.         }
  72.     } else {
  73.         return 0.0
  74.     }
  75. }
  76.  
  77. # Die naechsten Moeglichkeiten sind das Ausweichen nach den 4 Richtungen
  78. new ncommandlist goleft
  79. goleft.setadjusttype     horimaneuver
  80. goleft.settestcommand    aagoleft_test
  81. goleft.addcommand        true -100 0 -30 false 0 0 0 nothing 2.0
  82.  
  83. proc aagoleft_test {} { 
  84.  
  85. global zufallszahl
  86. global targetangle
  87. global targetdist
  88.  
  89.     if { (90 < $targetangle) && (200 < $targetdist) } {
  90.     
  91.         if { (0.3 <= $zufallszahl) && (0.4 > $zufallszahl) } {
  92.             return 1.0
  93.         } else {
  94.             return 0.0
  95.         }
  96.     } else {
  97.         return 0.0
  98.     }
  99. }
  100.  
  101.  
  102. new ncommandlist goright
  103. goright.setadjusttype     horimaneuver
  104. goright.settestcommand    aagoright_test
  105. goright.addcommand        true 100 0 -30 false 0 0 0 nothing 2.0
  106.  
  107. proc aagoright_test {} { 
  108.  
  109. global zufallszahl
  110. global targetangle
  111. global targetdist
  112.  
  113.     if { (90 < $targetangle) && (200 < $targetdist) } {
  114.     
  115.         if { (0.4 <= $zufallszahl) && (0.5 > $zufallszahl) } {
  116.             return 1.0
  117.         } else {
  118.             return 0.0
  119.         }
  120.     } else {
  121.         return 0.0
  122.     }
  123. }
  124.  
  125.  
  126. new ncommandlist goup
  127. goup.setadjusttype     horimaneuver
  128. goup.settestcommand    aagoup_test
  129. goup.addcommand        true 0 100 -30 false 0 0 0 nothing 2.0
  130.  
  131. proc aagoup_test {} { 
  132.  
  133. global zufallszahl
  134. global targetangle
  135. global targetdist
  136.  
  137.     if { (90 < $targetangle) && (200 < $targetdist) } {
  138.     
  139.         if { (0.5 <= $zufallszahl) && (0.6 > $zufallszahl) } {
  140.             return 1.0
  141.         } else {
  142.             return 0.0
  143.         }
  144.     } else {
  145.         return 0.0
  146.     }
  147. }
  148.  
  149.  
  150. new ncommandlist godown
  151. godown.setadjusttype     horimaneuver
  152. godown.settestcommand    aagodown_test
  153. godown.addcommand        true 0 -100 -30 false 0 0 0 nothing 2.0
  154.  
  155. proc aagodown_test {} { 
  156.  
  157. global zufallszahl
  158. global targetangle
  159. global targetdist
  160.  
  161.     if { (90 < $targetangle) && (200 < $targetdist) } {
  162.     
  163.         if { (0.6 <= $zufallszahl) && (0.7 > $zufallszahl) } {
  164.             return 1.0
  165.         } else {
  166.             return 0.0
  167.         }
  168.     } else {
  169.         return 0.0
  170.     }
  171. }
  172.  
  173. # Eine weitere Moeglichkeit ist ein verwirren: ich fliege etwas nach oben
  174. # und dann sofort nach unten
  175. new ncommandlist goupanddown
  176. goupanddown.setadjusttype     horimaneuver
  177. goupanddown.settestcommand    aagoupanddown_test
  178. goupanddown.addcommand        true 0  100 -30 false 0 0 0 nothing 1.5
  179. goupanddown.addcommand        true 0 -200 -30 false 0 0 0 nothing 3.0
  180.  
  181. proc aagoupanddown_test {} { 
  182.  
  183. global zufallszahl
  184. global targetangle
  185. global targetdist
  186.  
  187.     if { (90 < $targetangle) && (200 < $targetdist) } {
  188.     
  189.         if { (0.7 <= $zufallszahl) && (0.8 > $zufallszahl) } {
  190.             return 1.0
  191.         } else {
  192.             return 0.0
  193.         }
  194.     } else {
  195.         return 0.0
  196.     }
  197. }
  198.  
  199. # eine andere Spielerei, die man mal probieren koennte, ist das
  200. # schnelle Abtauchen, also auf den Ruecken drehen und dann nach
  201. # unten drehen. Nur Ausrichtungskommandos
  202.  
  203.  
  204. # Eine Rolle
  205. new ncommandlist rolle
  206. rolle.setadjusttype     horimaneuver
  207. rolle.settestcommand    aarolle_test
  208. rolle.addcommand   false 0 0  -10 true  0 0  0   nothing 0.5
  209. rolle.addcommand   false 0 0  -20 true  0 0  0   nothing 1.0
  210. rolle.addcommand   false 0 0  -30 true  0 0  0   nothing 1.5
  211. rolle.addcommand   false 0 0  -40 true  0 0 -45  nothing 2.0
  212. rolle.addcommand   false 0 0  -50 true  0 0 -90  nothing 2.5
  213. rolle.addcommand   false 0 0  -60 true  0 0 -135 nothing 3.0
  214. rolle.addcommand   false 0 0  -70 true  0 0 -180 nothing 3.5
  215. rolle.addcommand   false 0 0  -80 true  0 0 -225 nothing 4.0
  216. rolle.addcommand   false 0 0  -90 true  0 0 -270 nothing 4.5
  217. rolle.addcommand   false 0 0 -100 true  0 0 -315 nothing 5.0
  218. rolle.addcommand   false 0 0 -110 true  0 0  0   nothing 5.5
  219. rolle.addcommand   false 0 0 -120 true  0 0 -45  nothing 6.0
  220. rolle.addcommand   false 0 0 -130 true  0 0 -90  nothing 6.5
  221. rolle.addcommand   false 0 0 -140 true  0 0 -135 nothing 7.0
  222. rolle.addcommand   false 0 0 -150 true  0 0 -180 nothing 7.5
  223. rolle.addcommand   false 0 0 -160 true  0 0 -225 nothing 8.0
  224. rolle.addcommand   false 0 0 -170 true  0 0 -270 nothing 8.5
  225. rolle.addcommand   false 0 0 -180 true  0 0 -315 nothing 9.0
  226. rolle.addcommand   false 0 0 -190 true  0 0  0   nothing 9.5
  227. rolle.addcommand   false 0 0 -200 true  0 0  0   nothing 10.0
  228.  
  229. proc aarolle_test {} {
  230.  
  231. global zufallszahl
  232.  
  233.     # Derzeit nicht nutzen
  234.     return 0.0
  235. }
  236.  
  237. sel ..
  238. sel ..
  239.  
  240.